﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace BDSim
{
    public class TropDLL
    {
        ///////////////////////////////////////////////////////////////////////////////////////////
        //函数功能：实时计算对流层,输出DeltTro
        //输入:
        //       (1) pCalTro_Input
        //          (1.1)Tro:对流层参数
        //             【temperature：地表气温（oC）;
        //               pressure：大气压强（mbar）;
        //               RelHumidity:相对湿度（%）；
        //               SatVaporPressure:纯水平液面饱和水汽压（注：目前程序没用到该参数）；
        //               D_Trop:对流层温度下降率（参考值-6.81）；
        //               LeanVaporPressure:水汽偏压（参考值0.00204）
        //              】
        //          (1.2)SatECFPos[3]:卫星地固系坐标值x、y、z（m；
        //          (1.3)UsePos[3]:用户地固系坐标值x、y、z（m；
           
        //       (2)Itro ： 对流层一级开关；0：不考虑对流层影响；1：Hopfield模型；2：改进的Hopfield模型；3：Saastamoninen模型＋Chao和CFA映射函数；4：激光专用模型
        //输出:
        //     DeltTro     
        //返回值: 
        //      (1)1:正确
        //      (2)-3:气参输入有误【正常区间：1.温度：-173.16~373.16；2.压强：>0】
        //      (3)-1:Itro不在0-3之间
        ///////////////////////////////////////////////////////////////////////////////////////////
        [DllImport("CTropDLL.dll", EntryPoint = "CalTro_output", CallingConvention = CallingConvention.Cdecl)]
        public static extern int CalTro_output(CalTro_Input pCalTro_Input, int Itro, out double DeltTro);

    }
}
